package cn.com.huzo.model.entities.inventory;

import huzofw.model.entities.BaseEntity;
import huzofw.model.entities.IAggregateRoot;
import java.io.Serializable;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

/**
 * 领料出库明细实体类
 *
 * @author 吴旭
 */
public class StockOutLinesEntity extends BaseEntity implements Serializable, IAggregateRoot {

    private static final long serialVersionUID = -2361377592205436282L;
    private String LinesId;
    private Long HeaderId;                  // 出库单标识
    private String RsLinesId;               // 引入的领料单标识
    private String SupplierName;            // 供应商
    private String MaterialName;            // 材料名
    private String PartOfNeed;              // 用料部位
    private String MaterialCode;
    private Integer ProductQuantity;        // 成品数量  
    private Integer SuitCuttingQuantity;    // 套裁数量
    private Double FloatingIncrement;       // 生产浮动增量
    private String ProductSizeName;         // 成品规格
    private String UomName;
    private String ProductColourName;       // 成品色
    private Double FactoryPieceYardage;     // 工厂单用量
    private Double SuitCutPieceYardage;     // 套裁单用量 
    private Double SeamPieceYardage;        // 生产单用量，默认=工厂单用量 
    private String FabricWidth;             // 幅宽
    private String MaterialColourName;      // 材料色
    private String Specification;           // 材料规格
    private Double QuantityDemandPlan;      // 需要量=必要数？
    private Double StockLevels;             // 库存数 
    private Double QuantityDemand;          // 补给数
    private Double SeamLoss;                // 生产损耗数
    private Double SeamQuantity;            // 生产补给数（即出库数）
    private Double StockAdjustment;         // 调配库存
    private Double StockOutQuantity;        // 出库数量
    private Double ReadyStockOutQuantity;   // 已出库数量
    private Boolean BalanceFlag;            // 结存标记(0：未结存 1：结存)
    private String Description;             // 备注

    public String getLinesId() {
        return LinesId;
    }

    public void setLinesId(String LinesId) {
        this.LinesId = LinesId;
    }

    public Long getHeaderId() {
        return HeaderId;
    }

    public void setHeaderId(Long HeaderId) {
        this.HeaderId = HeaderId;
    }

    public String getRsLinesId() {
        return RsLinesId;
    }

    public void setRsLinesId(String RsLinesId) {
        this.RsLinesId = RsLinesId;
    }

    public String getSupplierName() {
        return SupplierName;
    }

    public void setSupplierName(String SupplierName) {
        this.SupplierName = SupplierName;
    }

    public String getMaterialName() {
        return MaterialName;
    }

    public void setMaterialName(String MaterialName) {
        this.MaterialName = MaterialName;
    }

    public String getPartOfNeed() {
        return PartOfNeed;
    }

    public void setPartOfNeed(String PartOfNeed) {
        this.PartOfNeed = PartOfNeed;
    }

    public String getMaterialCode() {
        return MaterialCode;
    }

    public void setMaterialCode(String MaterialCode) {
        this.MaterialCode = MaterialCode;
    }

    public Integer getProductQuantity() {
        return ProductQuantity;
    }

    public void setProductQuantity(Integer ProductQuantity) {
        this.ProductQuantity = ProductQuantity;
    }

    public Integer getSuitCuttingQuantity() {
        return SuitCuttingQuantity;
    }

    public void setSuitCuttingQuantity(Integer SuitCuttingQuantity) {
        this.SuitCuttingQuantity = SuitCuttingQuantity;
    }

    public Double getFloatingIncrement() {
        return FloatingIncrement;
    }

    public void setFloatingIncrement(Double FloatingIncrement) {
        this.FloatingIncrement = FloatingIncrement;
    }

    public String getProductSizeName() {
        return ProductSizeName;
    }

    public void setProductSizeName(String ProductSizeName) {
        this.ProductSizeName = ProductSizeName;
    }

    public String getUomName() {
        return UomName;
    }

    public void setUomName(String UomName) {
        this.UomName = UomName;
    }

    public String getProductColourName() {
        return ProductColourName;
    }

    public void setProductColourName(String ProductColourName) {
        this.ProductColourName = ProductColourName;
    }

    public Double getFactoryPieceYardage() {
        return FactoryPieceYardage;
    }

    public void setFactoryPieceYardage(Double FactoryPieceYardage) {
        this.FactoryPieceYardage = FactoryPieceYardage;
    }

    public Double getSuitCutPieceYardage() {
        return SuitCutPieceYardage;
    }

    public void setSuitCutPieceYardage(Double SuitCutPieceYardage) {
        this.SuitCutPieceYardage = SuitCutPieceYardage;
    }

    public Double getSeamPieceYardage() {
        return SeamPieceYardage;
    }

    public void setSeamPieceYardage(Double SeamPieceYardage) {
        this.SeamPieceYardage = SeamPieceYardage;
    }

    public String getFabricWidth() {
        return FabricWidth;
    }

    public void setFabricWidth(String FabricWidth) {
        this.FabricWidth = FabricWidth;
    }

    public String getMaterialColourName() {
        return MaterialColourName;
    }

    public void setMaterialColourName(String MaterialColourName) {
        this.MaterialColourName = MaterialColourName;
    }

    public String getSpecification() {
        return Specification;
    }

    public void setSpecification(String Specification) {
        this.Specification = Specification;
    }

    public Double getQuantityDemandPlan() {
        return QuantityDemandPlan;
    }

    public void setQuantityDemandPlan(Double QuantityDemandPlan) {
        this.QuantityDemandPlan = QuantityDemandPlan;
    }

    public Double getStockLevels() {
        return StockLevels;
    }

    public void setStockLevels(Double StockLevels) {
        this.StockLevels = StockLevels;
    }

    public Double getQuantityDemand() {
        return QuantityDemand;
    }

    public void setQuantityDemand(Double QuantityDemand) {
        this.QuantityDemand = QuantityDemand;
    }

    public Double getSeamLoss() {
        return SeamLoss;
    }

    public void setSeamLoss(Double SeamLoss) {
        this.SeamLoss = SeamLoss;
    }

    public Double getSeamQuantity() {
        return SeamQuantity;
    }

    public void setSeamQuantity(Double SeamQuantity) {
        this.SeamQuantity = SeamQuantity;
    }

    public Double getStockAdjustment() {
        return StockAdjustment;
    }

    public void setStockAdjustment(Double StockAdjustment) {
        this.StockAdjustment = StockAdjustment;
    }

    public Double getStockOutQuantity() {
        return StockOutQuantity;
    }

    public void setStockOutQuantity(Double StockOutQuantity) {
        this.StockOutQuantity = StockOutQuantity;
    }

    public Double getReadyStockOutQuantity() {
        return ReadyStockOutQuantity;
    }

    public void setReadyStockOutQuantity(Double ReadyStockOutQuantity) {
        this.ReadyStockOutQuantity = ReadyStockOutQuantity;
    }

    public Boolean getBalanceFlag() {
        return BalanceFlag;
    }

    public void setBalanceFlag(Boolean BalanceFlag) {
        this.BalanceFlag = BalanceFlag;
    }

    public String getDescription() {
        return Description;
    }

    public void setDescription(String Description) {
        this.Description = Description;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof StockOutLinesEntity)) {
            return false;
        }

        final StockOutLinesEntity that = (StockOutLinesEntity) o;

        return new EqualsBuilder()
                .append(this.getLinesId(), that.getLinesId())
                .isEquals();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public int hashCode() {
        int result = 17;
        result = 31 * result + this.getLinesId().hashCode();

        return result;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }
}
